Matlab自学笔记:句柄、函数句柄、图像句柄(概念、用法、原理和区别)

您所在的位置:网站首页 matlab 获取窗体的句柄 Matlab自学笔记:句柄、函数句柄、图像句柄(概念、用法、原理和区别)

Matlab自学笔记:句柄、函数句柄、图像句柄(概念、用法、原理和区别)

2024-07-03 23:24| 来源: 网络整理| 查看: 265

句柄的概念

今天看交流群里在讨论句柄是什么意思,我觉得这是一个很好话题,浅述己见,欢迎交流;

1 首先说,a=1,这里a是一个变量,它的值简单明了,就是1,计算a+1,不用多说,大家立刻明白,结果是2;

2 再说句柄,其实也是一种变量(变量可以直接理解成它的名字,如上例,找到变量名a,那么就找到了它的值1,在一个程序环境中,变量名必须是唯一的,否则会出现变量覆盖的现象,从这个角度说,变量名也就约等于,大家的身份证号了),不过它是一种特别的变量;

3 具体说,句柄作为一种变量,它的特殊性在于,它指向的不是一个简单具体的值,而是一个结构体,这个结构体包含了很多可以读写的分支数据,一般称为属性或者方法,例如图窗类的句柄,使用plot作图之后,形成的图形对象包含线型、颜色、坐标轴刻度、作图范围等,都是这个图像结构体的属性;如果要修改其中的线型或者颜色等属性,就需要通过句柄先找到这个图像,再在图像中找到相应的属性,索引格式是:h.width(h就是图像句柄,width是其中一个表达线宽的属性),至于如何修改和赋值参照上述a=1思考就好了。(这个就比如,通过身份证号先找到你这个人,然后,你的年龄、性别、学历等信息都可以查找了,你就是一个句柄,年龄、性别等都是你的属性)

4 最后再说下,句柄中的非常规概念句柄,函数句柄,它虽然也称为句柄,但用法上,基本不太使用他的属性(它好像也没有什么属性),而是指向函数表达式本身,为什么会这样,例如,函数f(x)=sin(x),常规用法是求函数值,x=0,f(x)=sin(0)=0,没有问题,问题是,如果要求函数f(x0的极值,或者f(x)=0方程的根,大家立刻发现,仅输入自变量或者函数值是不行的,而需要输入整个函数表达式,也就是说,把函数表达式作为一个整体输入变量,常规变量如a=1是做不到的,不信你试试a=f(x),肯定回报错,怎么办呢,函数句柄应运而生,使用@符号创建一种新的变量,如,a=@f(上面已经定义了f函数),那么求方程f=0的根,只需要调用求根函数fzero,应用格式为:fzero(a),或者fzero(@f),求最值就不用说了,事实上,在优化专题里,目标函数的输入都是用函数句柄的这种方式。

以上是以Matlab编程环境说明的。

End



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3